#include "getScroll.h"

// 定义轮播图的数量
#define SLIDE_COUNT 3
// 定义三种颜色
lv_color_t colors[SLIDE_COUNT] = {
    lv_palette_lighten(LV_PALETTE_RED, 2),
    lv_palette_lighten(LV_PALETTE_PINK, 2),
    lv_palette_lighten(LV_PALETTE_BLUE, 2)
};

// 当前显示的轮播图索引
uint8_t current_slide = 0;
// 标记轮播图是否显示
bool slideshow_visible = true;
// 定时器回调函数，用于切换轮播图
static void slide_timer_cb(lv_timer_t * timer)
{
    if (!slideshow_visible) return; // 如果轮播图已隐藏，不进行切换
    // 获取屏幕对象
    lv_obj_t * scr = lv_scr_act();
    // 增加当前轮播图索引
    current_slide = (current_slide + 1) % SLIDE_COUNT;
    // 设置屏幕的背景颜色为当前轮播图对应的颜色
    lv_obj_set_style_bg_color(scr, colors[current_slide], LV_PART_MAIN);
}
// 点击事件回调函数，用于处理点击轮播图的操作
static void click_event_cb(lv_event_t * e)
{
    lv_obj_t * obj = lv_event_get_target(e);
    // 隐藏轮播图，将屏幕背景颜色设置为透明
    lv_obj_set_style_bg_opa(obj, LV_OPA_TRANSP, LV_PART_MAIN);
    slideshow_visible = false;
    createUserMain();
}
void createGetScroll()
{
    // 获取屏幕对象
    lv_obj_t * scr = lv_scr_act();
    // 设置屏幕初始背景颜色为第一个轮播图的颜色
    lv_obj_set_style_bg_color(scr, colors[current_slide], LV_PART_MAIN);
    // 为屏幕添加点击事件
    lv_obj_add_event_cb(scr, click_event_cb, LV_EVENT_CLICKED, NULL);
    // 创建一个定时器，每 3 秒调用一次 slide_timer_cb 函数
    lv_timer_create(slide_timer_cb, 3000, NULL);
}



// #include "getScroll.h"
// // 包含转换后的图片文件
// #include "img_image1.c"
// #include "img_image2.c"
// #include "img_image3.c"
// // 定义轮播图的数量
// #define SLIDE_COUNT 3
// // 定义图片数组
// const void * images[SLIDE_COUNT] = {
//     &img_image1,
//     &img_image2,
//     &img_image3
// };
// // 当前显示的轮播图索引
// uint8_t current_slide = 0;
// // 标记轮播图是否显示
// bool slideshow_visible = true;
// // 定时器回调函数，用于切换轮播图
// static void slide_timer_cb(lv_timer_t * timer)
// {
//     if (!slideshow_visible) return; // 如果轮播图已隐藏，不进行切换
//     // 获取屏幕对象
//     lv_obj_t * scr = lv_scr_act();
//     // 增加当前轮播图索引
//     current_slide = (current_slide + 1) % SLIDE_COUNT;
//     // 创建或更新图片对象
//     static lv_obj_t * img = NULL;
//     if (img == NULL) {
//         img = lv_img_create(scr);
//     }
//     // 设置图片的源为当前轮播图对应的图片数据
//     lv_img_set_src(img, images[current_slide]);
//     // 将图片居中显示
//     lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
// }
// // 点击事件回调函数，用于处理点击轮播图的操作
// static void click_event_cb(lv_event_t * e)
// {
//     lv_obj_t * obj = lv_event_get_target(e);
//     // 隐藏轮播图，将图片对象隐藏
//     lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
//     slideshow_visible = false;
//     createUserMain();
// }
// void createGetScroll()
// {
//     // 获取屏幕对象
//     lv_obj_t * scr = lv_scr_act();
//     // 创建初始图片对象
//     lv_obj_t * img = lv_img_create(scr);
//     // 设置图片的源为第一个轮播图对应的图片数据
//     lv_img_set_src(img, images[current_slide]);
//     // 将图片居中显示
//     lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
//     // 为屏幕添加点击事件
//     lv_obj_add_event_cb(img, click_event_cb, LV_EVENT_CLICKED, NULL);
//     // 创建一个定时器，每 3 秒调用一次 slide_timer_cb 函数
//     lv_timer_create(slide_timer_cb, 3000, NULL);
// }